home *** CD-ROM | disk | FTP | other *** search
/ PC Plus SuperCD (UK) 1998 August / PC Plus SuperCD 50a Issue 142 (CD142a) (August 1998).iso / trial / demon / TURNPIKE.1 / CLASSES.ZIP / JAVA / AWT / Container.class (.txt) < prev    next >
Encoding:
Java Class File  |  1997-04-14  |  4.4 KB  |  291 lines

  1. package java.awt;
  2.  
  3. import java.awt.peer.ContainerPeer;
  4. import java.io.PrintStream;
  5.  
  6. public abstract class Container extends Component {
  7.    int ncomponents;
  8.    Component[] component = new Component[4];
  9.    LayoutManager layoutMgr;
  10.  
  11.    Container() {
  12.    }
  13.  
  14.    public int countComponents() {
  15.       return this.ncomponents;
  16.    }
  17.  
  18.    public synchronized Component getComponent(int var1) {
  19.       if (var1 >= 0 && var1 < this.ncomponents) {
  20.          return this.component[var1];
  21.       } else {
  22.          throw new ArrayIndexOutOfBoundsException("No such child: " + var1);
  23.       }
  24.    }
  25.  
  26.    public synchronized Component[] getComponents() {
  27.       Component[] var1 = new Component[this.ncomponents];
  28.       System.arraycopy(this.component, 0, var1, 0, this.ncomponents);
  29.       return var1;
  30.    }
  31.  
  32.    public Insets insets() {
  33.       ContainerPeer var1 = (ContainerPeer)super.peer;
  34.       return var1 != null ? var1.insets() : new Insets(0, 0, 0, 0);
  35.    }
  36.  
  37.    public Component add(Component var1) {
  38.       return this.add(var1, -1);
  39.    }
  40.  
  41.    public synchronized Component add(Component var1, int var2) {
  42.       if (var2 <= this.ncomponents && (var2 >= 0 || var2 == -1)) {
  43.          if (var1 instanceof Container) {
  44.             for(Container var3 = this; var3 != null; var3 = var3.parent) {
  45.                if (var3 == var1) {
  46.                   throw new IllegalArgumentException("adding container's parent to itself");
  47.                }
  48.             }
  49.          }
  50.  
  51.          if (var1.parent != null) {
  52.             var1.parent.remove(var1);
  53.          }
  54.  
  55.          if (this.ncomponents == this.component.length) {
  56.             Component[] var4 = new Component[this.ncomponents * 2];
  57.             System.arraycopy(this.component, 0, var4, 0, this.ncomponents);
  58.             this.component = var4;
  59.          }
  60.  
  61.          if (var2 != -1 && var2 != this.ncomponents) {
  62.             System.arraycopy(this.component, var2, this.component, var2 + 1, this.ncomponents - var2);
  63.             this.component[var2] = var1;
  64.             ++this.ncomponents;
  65.          } else {
  66.             this.component[this.ncomponents++] = var1;
  67.          }
  68.  
  69.          var1.parent = this;
  70.          if (super.valid) {
  71.             ((Component)this).invalidate();
  72.          }
  73.  
  74.          if (super.peer != null) {
  75.             var1.addNotify();
  76.          }
  77.  
  78.          return var1;
  79.       } else {
  80.          throw new IllegalArgumentException("illegal component position");
  81.       }
  82.    }
  83.  
  84.    public synchronized Component add(String var1, Component var2) {
  85.       Component var3 = this.add(var2);
  86.       LayoutManager var4 = this.layoutMgr;
  87.       if (var4 != null) {
  88.          var4.addLayoutComponent(var1, var2);
  89.       }
  90.  
  91.       return var3;
  92.    }
  93.  
  94.    public synchronized void remove(Component var1) {
  95.       if (var1.parent == this) {
  96.          for(int var2 = 0; var2 < this.ncomponents; ++var2) {
  97.             if (this.component[var2] == var1) {
  98.                if (super.peer != null) {
  99.                   var1.removeNotify();
  100.                }
  101.  
  102.                if (this.layoutMgr != null) {
  103.                   this.layoutMgr.removeLayoutComponent(var1);
  104.                }
  105.  
  106.                var1.parent = null;
  107.                System.arraycopy(this.component, var2 + 1, this.component, var2, this.ncomponents - var2 - 1);
  108.                this.component[--this.ncomponents] = null;
  109.                if (super.valid) {
  110.                   ((Component)this).invalidate();
  111.                }
  112.  
  113.                return;
  114.             }
  115.          }
  116.       }
  117.  
  118.    }
  119.  
  120.    public synchronized void removeAll() {
  121.       Component var1;
  122.       for(; this.ncomponents > 0; var1.parent = null) {
  123.          var1 = this.component[--this.ncomponents];
  124.          this.component[this.ncomponents] = null;
  125.          if (super.peer != null) {
  126.             var1.removeNotify();
  127.          }
  128.  
  129.          if (this.layoutMgr != null) {
  130.             this.layoutMgr.removeLayoutComponent(var1);
  131.          }
  132.       }
  133.  
  134.       if (super.valid) {
  135.          ((Component)this).invalidate();
  136.       }
  137.  
  138.    }
  139.  
  140.    public LayoutManager getLayout() {
  141.       return this.layoutMgr;
  142.    }
  143.  
  144.    public void setLayout(LayoutManager var1) {
  145.       this.layoutMgr = var1;
  146.       if (super.valid) {
  147.          ((Component)this).invalidate();
  148.       }
  149.  
  150.    }
  151.  
  152.    public synchronized void layout() {
  153.       LayoutManager var1 = this.layoutMgr;
  154.       if (var1 != null) {
  155.          var1.layoutContainer(this);
  156.       }
  157.  
  158.    }
  159.  
  160.    public synchronized void validate() {
  161.       super.validate();
  162.  
  163.       for(int var1 = 0; var1 < this.ncomponents; ++var1) {
  164.          Component var2 = this.component[var1];
  165.          if (!var2.valid) {
  166.             var2.validate();
  167.          }
  168.       }
  169.  
  170.    }
  171.  
  172.    public synchronized Dimension preferredSize() {
  173.       LayoutManager var1 = this.layoutMgr;
  174.       return var1 != null ? var1.preferredLayoutSize(this) : super.preferredSize();
  175.    }
  176.  
  177.    public synchronized Dimension minimumSize() {
  178.       LayoutManager var1 = this.layoutMgr;
  179.       return var1 != null ? var1.minimumLayoutSize(this) : super.minimumSize();
  180.    }
  181.  
  182.    public void paintComponents(Graphics var1) {
  183.       for(int var2 = 0; var2 < this.ncomponents; ++var2) {
  184.          Component var3 = this.component[var2];
  185.          if (var3 != null) {
  186.             Graphics var4 = var1.create(var3.x, var3.y, var3.width, var3.height);
  187.  
  188.             try {
  189.                var3.paintAll(var4);
  190.             } finally {
  191.                var4.dispose();
  192.             }
  193.          }
  194.       }
  195.  
  196.    }
  197.  
  198.    public void printComponents(Graphics var1) {
  199.       for(int var2 = 0; var2 < this.ncomponents; ++var2) {
  200.          Component var3 = this.component[var2];
  201.          if (var3 != null) {
  202.             Graphics var4 = var1.create(var3.x, var3.y, var3.width, var3.height);
  203.  
  204.             try {
  205.                var3.printAll(var4);
  206.             } finally {
  207.                var4.dispose();
  208.             }
  209.          }
  210.       }
  211.  
  212.    }
  213.  
  214.    public void deliverEvent(Event var1) {
  215.       Component var2 = this.locate(var1.x, var1.y);
  216.       if (var2 != null && var2 != this) {
  217.          var1.translate(-var2.x, -var2.y);
  218.          var2.deliverEvent(var1);
  219.       } else {
  220.          ((Component)this).postEvent(var1);
  221.       }
  222.    }
  223.  
  224.    public Component locate(int var1, int var2) {
  225.       if (!((Component)this).inside(var1, var2)) {
  226.          return null;
  227.       } else {
  228.          for(int var3 = this.ncomponents - 1; var3 >= 0; --var3) {
  229.             Component var4 = this.component[var3];
  230.             if (var4 != null && var4.inside(var1 - var4.x, var2 - var4.y)) {
  231.                return var4;
  232.             }
  233.          }
  234.  
  235.          return this;
  236.       }
  237.    }
  238.  
  239.    public synchronized void addNotify() {
  240.       for(int var1 = 0; var1 < this.ncomponents; ++var1) {
  241.          this.component[var1].addNotify();
  242.       }
  243.  
  244.       super.addNotify();
  245.    }
  246.  
  247.    public synchronized void removeNotify() {
  248.       for(int var1 = 0; var1 < this.ncomponents; ++var1) {
  249.          this.component[var1].removeNotify();
  250.       }
  251.  
  252.       super.removeNotify();
  253.    }
  254.  
  255.    protected String paramString() {
  256.       String var1 = super.paramString();
  257.       LayoutManager var2 = this.layoutMgr;
  258.       if (var2 != null) {
  259.          var1 = var1 + ",layout=" + var2.getClass().getName();
  260.       }
  261.  
  262.       return var1;
  263.    }
  264.  
  265.    public void list(PrintStream var1, int var2) {
  266.       super.list(var1, var2);
  267.  
  268.       for(int var3 = 0; var3 < this.ncomponents; ++var3) {
  269.          Component var4 = this.component[var3];
  270.          if (var4 != null) {
  271.             var4.list(var1, var2 + 1);
  272.          }
  273.       }
  274.  
  275.    }
  276.  
  277.    void setFocusOwner(Component var1) {
  278.       if (super.parent != null) {
  279.          super.parent.setFocusOwner(var1);
  280.       }
  281.  
  282.    }
  283.  
  284.    void nextFocus(Component var1) {
  285.       if (super.parent != null) {
  286.          super.parent.nextFocus(var1);
  287.       }
  288.  
  289.    }
  290. }
  291.